$=layui.jquery

let state={

}

//加载模块
layui.use(function() { //亦可加载特定模块：layui.use(['layer', 'laydate', function(){
    //得到各种内置组件
    var layer = layui.layer //弹层
        , table = layui.table //表格

    //执行一个 table 实例
    M.tableObj = table.render({
        elem: '#demo'
        , height: 420
        , url: '/dictionaryList' //数据接口
        , title: '用户表'
        , page: true //开启分页
        , toolbar: 'default' //开启工具栏，此处显示默认图标，可以自定义模板，详见文档
        , totalRow: true //开启合计行
        ,cols: [[
            {type: 'checkbox', fixed: 'left'},
            {field:'id', width:80, title: 'ID', sort: true}
            ,{field:'name', width:120, title: '名称'}
            ,{field:'use_code', width:200, title: '文档地址'}
            ,{field:'gmt_create',width:200, title: '最后更新时间'},
            {fixed: 'right', width:250, align:'left', toolbar: '#barDemo'}
        ]],
        parseData: function(res){ //res 即为原始返回的数据
            let r={
                "code": res.code, //解析接口状态
                "msg": res.msg, //解析提示文本
                "count": res.data.total, //解析数据长度
                "data": res.data.dataList //解析数据列表
            }
            //console.log(r)
            return r;
        }
    });
    //监听头工具栏事件
    table.on('toolbar(test)',async function (obj) {
        var checkStatus = table.checkStatus(obj.config.id)
            , data = checkStatus.data; //获取选中的数据

        switch (obj.event) {
            case 'add':
                layer.open({
                    type: 1
                    ,title: ['创建模板']
                    ,btn: ['确定', '取消']
                    ,shadeClose: true
                    ,shade: 0
                    ,maxmin: true
                    ,content:$("#window")
                    ,success:function(layero,index){
                        $('#bid').val(data.bid);
                        $('#bname').val(data.bname);
                        $('#price').val(data.price);
                    },
                    yes:async function(index, layero){
                        let name= $("#dictionaryNameId").val()
                        let use_code= $("#dictionaryNameId").val()
                        let parent_id=state.parent_id;
                        if(!parent_id){
                            alert("先选中目录")
                            return
                        }
                       let r=await MIO.dictionaryAdd({
                            name,
                           use_code,
                           parent_id
                        })
                        renderDictory(parent_id)
                        layer.close(index); //如果设定了yes回调，需进行手工关闭
                    }
                });
                break
            case 'update':
                if (data.length === 0) {
                    layer.msg('请选择一行');
                } else if (data.length > 1) {
                    layer.msg('只能同时编辑一个');
                } else {
                    layer.open({
                        type: 1
                        ,title: ['创建模板']
                        ,btn: ['确定', '取消']
                        ,shadeClose: true
                        ,shade: 0
                        ,maxmin: true
                        ,content:$("#window")
                        ,success:function(layero,index){
                            $('#dictionaryNameId').val(data[0].name);
                            $('#use_codeId').val(data[0].use_code);
                        },
                        yes:async function(index, layero){
                            let name= $("#dictionaryNameId").val()
                            let use_code= $("#use_codeId").val()
                            let parent_id=state.parent_id;
                            if(!parent_id){
                                alert("先选中目录")
                                return
                            }
                            let r=await MIO.dictionaryAdd({
                                id:data[0].id,
                                name,
                                use_code,
                                parent_id
                            })
                            renderDictory(parent_id)
                            layer.close(index); //如果设定了yes回调，需进行手工关闭
                        }
                    });
                }
                break;
            case 'delete':
                if (data.length === 0) {
                    layer.msg('请选择一行');
                } else {
                    let idList=data.map(u=>u.id);
                     MIO.dictionaryDelete({
                        idList
                    }).then(d=>{
                        layer.msg('删除成功');
                         renderDictory(state.parent_id)
                    });
                }
                break;
        };
    });
    //监听工具条
    table.on('tool(test)',async function(obj){
        var data = obj.data;
        if(obj.event === 'syncDictionary'){
           let r= await MIO.dictionarySync({id:data.id})
            if(r.code==0){
                renderDictory(state.parent_id)
                layer.msg('同步成功');

            }else {
                layer.msg(r.msg);
            }
        } else if(obj.event === 'lookUseData'){
            let r=obj.data.useData
            try {
               r= JSON.parse(obj.data.useData)
            }catch (e){

            }
            layerUtils.openJsonEdit(r)
        }
    });

})



function renderDictory(parent_id){
    state.parent_id=parent_id;
    M.tableObj.reload({
        where: {
            parent_id:parent_id
        }
        ,page: {
            curr: 1
        }
    });
}

$(function (){

   MIO.dictionaryList({"parent_id":-1}).then(d=>{
       let dataList= d.data.dataList
       let html= dataList.map(u=>{
           return `<dd><a href="javascript:;" onClick="renderDictory(${u.id})">${u.name}</a></dd>`
       }).join("");
       $("#leftMenuId").html(html)
   })
})